//#include <stdio.h>
//
//
//int fib_recursive(int n) {
//    if (n <= 0) return 0;
//    if (n == 1) return 1;
//    return fib_recursive(n - 1) + fib_recursive(n - 2);
//}
//
//
//int fib_iterative(int n) {
//    if (n <= 0) return 0;
//    if (n == 1) return 1;
//
//    int a = 0, b = 1, result;
//    for (int i = 2; i <= n; i++) {
//        result = a + b;
//        a = b;
//        b = result;
//    }
//    return result;
//}
//
//int main() {
//    int n;
//    printf("请输入要计算的斐波那契数列项数n：");
//    scanf_s("%d", &n);
//
//    if (n < 0) {
//        printf("错误：n必须为非负整数！\n");
//        return 1;
//    }
//
//    printf("[递归算法] 第%d项斐波那契数：%d\n", n, fib_recursive(n));
//    printf("[迭代算法] 第%d项斐波那契数：%d\n", n, fib_iterative(n));
//
//    return 0;
//}
 
//#define _CRT_SECURE_NO_WARNINGS  
//#include <stdio.h>
//
//
//double power(double base, int exponent) {
// 
//    if (base == 0.0 && exponent <= 0) {
//        printf("[错误] 0的%d次方无意义\n", exponent);
//        return 0.0;
//    }
//
//    
//    if (exponent == 0) return 1.0;
//
//
//    if (exponent > 0) {
//        return base * power(base, exponent - 1);
//    }
//    else {
//        return 1.0 / power(base, -exponent);
//    }
//}
//
//int main() {
//    double n;
//    int k;
//
//    printf("请输入底数n：");
//    scanf("%lf", &n);
//    printf("请输入指数k：");
//    scanf("%d", &k);
//
//    double result = power(n, k);
//    printf("%.2f的%d次方 = %.6f\n", n, k, result);
//
//    return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>


int sum_digits(int n) {

    if (n < 0) return sum_digits(-n);


    if (n == 0) return 0;


    return (n % 10) + sum_digits(n / 10);
}

int main() {
    int number;
    printf("请输入一个整数：");
    scanf("%d", &number);

    printf("各位数字之和 = %d\n", sum_digits(number));
    return 0;
}